Consertando o ^M em scripts shell

Publicado por Rui Ogawa em 21/05/2009

[ Hits: 23.277 ]

 


Consertando o ^M em scripts shell



Hoje fui colocar em produção um firewall e notei que ao tentar executar o script, retornava o seguinte erro:

# /bin/bash^M: bad interpreter: Arquivo ou diretório não encontrado

O problema acontece quando um shell script é aberto com algum editor DOS. Ele insere quebras de linhas que os editores *NIX não interpretam, inserindo um ^M no fim da linha.

Como sempre, busquei ajuda primeiro aqui no VOL e encontrei algumas soluções usando o comando sed, mas dando uma pesquisada achei uma solução mais simples e funcional com o pacote tofrodos.

A solução foi apontada pelo Rubens Queiroz de Almeida, no Dicas-L e está na íntegra e muitíssimo bem explicada no link abaixo:
Outras dicas deste autor

Gráfico da evolução da popularidade das 20 distros mais utilizadas

Leitura recomendada

Bash: Gráficos estatísticos de tráfego de rede

Despertador em Shell

Comentando várias linhas em scripts bash

Shell Script para colorir seus scripts

Deixando sua Cloud em Português-BR

  

Comentários
[1] Comentário enviado por enzo em 21/05/2009 - 16:01h

Rui

Através do editor VI também podemos fazer o seguinte:

:set fileformat=dos

ou

:set fileformat=unix

no modo de comando.

Abraço,

[2] Comentário enviado por ledubr em 21/05/2009 - 16:37h

No vi, voce pode fazer :

:%s/^M// ( digitar :%s/control-v control-m// )


[]'s

[3] Comentário enviado por rogawa em 23/05/2009 - 12:03h

Agradeço imensamente os comentários do enzo e ledubr. Não é sempre que temos liberdade pra instalar o pacote tofrodos, então realmente nada melhor que saber utilizar os recursos nativos. Valeu!



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts